﻿using ShunFengApi.Enum;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ShunFengApi.Model
{
    public class OrderInfoModel
    {
        /// <summary>
        ///  String(56) 是 客户订单号，最大长度限于 56 位，该字段客户 可自行定义，请尽量命名的规范有意义，如 SFAPI2015051800001，订单号作为客户下单的凭 证，不允许重复提交。
        /// </summary>
        public string orderId { get; set; }
        /// <summary>
        /// string(5) 是 快件产品类别： 类别 描述 1 标准快递 2 顺丰特惠 3 电商特惠 5 顺丰次晨 6 顺丰即日 7 电商速配 15 生鲜速配
        /// </summary>
        public string expressType { get; set; }
        /// <summary>
        /// Number(1) 是 付款方式： 类别 描述 1 寄方付/寄付月结【默认值】 2 收方付 3 第三方付
        /// </summary>
        public short payMethod { get; set; }
        /// <summary>
        /// Number(1) 否 是否下 call（通知收派员上门取件） 类别 描述 1 下 call 0 不下 call【默认值】 
        /// </summary>
        public short isDocall { get; set; }
        /// <summary>
        /// Number(1) 否 是否申请运单号  类别 描述 1 申请【默认值】 0 不申请
        /// </summary>
        public short isGenBillNo { get; set; }
        /// <summary>
        /// Number(1) 否 是否生成电子运单图片  类别 描述 1 生成【默认值】 0 不生成
        /// </summary>
        public short isGenEletricPic { get; set; }
        /// <summary>
        /// String(20) 是 顺丰月结卡号 10 位数字
        /// </summary>
        public string custId { get; set; }
        /// <summary>
        /// String(20) 否 月结卡号对应的网点，如果付款方式为第三方支 付，则必填
        /// </summary>
        public string payArea { get; set; }
        /// <summary>
        ///  String(18) 否 要求上门取件开始时间，格式：YYYY-MM-DD HH24:MM:SS，示例：2012-7-30 09:30:00， 默认值为系统收到订单的系统时间 
        /// </summary>
        public string sendStartTime { get; set; }
        /// <summary>
        ///  string 否 是否需要签回单号 类别 描述 1 需要 0 不需要【默认值】 
        /// </summary>
        public string needReturnTrackingNo { get; set; }
        /// <summary>
        ///  String(100) 否 备注，最大长度 30 个汉字
        /// </summary>
        public string remark { get; set; }

        /// <summary>
        /// 寄件方信息
        /// </summary>
        public DeliverConsigneeInfo deliverInfo { get; set; }
        /// <summary>
        /// 到件方信息
        /// </summary>
        public DeliverConsigneeInfo consigneeInfo { get; set; }
        /// <summary>
        /// 货物信息
        /// </summary>
        public CargoInfo cargoInfo { get; set; }
        /// <summary>
        /// 增值服务
        /// </summary>
        public List<AddedServices> addedServices { get; set; }
    }

    public class AddedServices
    {
        public string name { get; set; }
        public string value { get; set; }
    }
}
